//
//  YSLoginViewController.swift
//  新浪浪
//
//  Created by mac on 16/2/27.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit
import AFNetworking


class YSLoginViewController: UIViewController,UIWebViewDelegate {
            var webView: UIWebView?
    
    /*******************************************/
    /*     UIWebView 替换 view    
                    构造方法 loadView
                          不用调用父类 因为父类作用就是加载view 现在我们自己创建webView    */
    /***************************************************/
    override func loadView() {
        let webView = UIWebView()
        //设置代理
        self.webView = webView
        view = webView
    }
    /*******************************************/
   
                                                                        /* code->token->用户信息 */
    
    /*******************************************/
    /*     导航控制器的 navigationItem    start---  */
    /***************************************************/
    func setNav(){
        navigationItem.leftBarButtonItem = UIBarButtonItem (title: "返回", style: UIBarButtonItemStyle.Plain, target: self, action: "dismiss")
        navigationItem.rightBarButtonItem = UIBarButtonItem (title: "自动填充", style: UIBarButtonItemStyle.Plain, target: self, action: "auto")
    }
    
    func dismiss(){
        dismissViewControllerAnimated(true) { () -> Void in
            
        }
    }
    func auto(){    /*      document.getElementById("userId").value = "itcast123456@hotmail.com";document.getElementById("passwd").value = "itcast123456";  */
        let js = "document.getElementById(\"userId\").value = \"18513939139\";document.getElementById(\"passwd\").value = \"malingshushushu\";"
        webView?.stringByEvaluatingJavaScriptFromString(js)
    }
    /*******************************************/
    /*     导航控制器的 navigationItem    end  ---  */
    /***************************************************/
    
    
    
    
    
    
    
    /*******************************************/
    /*      viewDidLoad    start--- 入口 */
    /***************************************************/
    override func viewDidLoad() {
        super.viewDidLoad()
//                                                  //  (设置背景,用户体验更好)
        view.backgroundColor = UIColor .whiteColor()
        setNav()
        webView?.delegate = self
        
        let url = NSURL (string: "https://api.weibo.com/oauth2/authorize?client_id=\(App_KEY)&redirect_uri=\(App_URL)&response_type=code")!
        let request = NSURLRequest (URL: url)
//        print(request)
        /**<NSURLRequest: 0x7feba35c05b0> { URL: https://api.weibo.com/oauth2/authorize?client_id=1016883931&redirect_uri=http://www.baidu.com&response_type=code }
        */
        webView?.loadRequest(request)
    }
    /*******************************************/
    /*      viewDidLoad    end---  */
    /***************************************************/
    
    

    
    
    
    /*******************************************/
    /*     代理方法获取 code    start  ---  */
    /***************************************************/
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        
        if let url = request.URL?.absoluteString{
//            print(url)
//            print(url.hasPrefix(App_URL))
            if url.hasPrefix(App_URL){
//                 let subString = url.componentsSeparatedByString("=")
//                if  subString.count>0{
//                    let code = subString
//                print(code)
//                }
                //第二种方法
                if let code = request.URL?.query{
                    let subCode = code.substringFromIndex("code=".endIndex)
//                    print(subCode)
//                    loadToken(subCode)
                    
                    
                    
                    YSUserViewModel().loadToken(subCode, success: { () -> () in
                        print("获取token,获取用户信息成功")
                        
                        NSNotificationCenter.defaultCenter().postNotificationName(kNotificationChangRootVc, object: nil)
                        
                        
                        self.dismissViewControllerAnimated((true), completion: { () -> Void in
                            
                        })
                        
                        }, faild: { () -> () in
                            print("获取token失败")
                    })
                }
            }
        }
        return true
    }
    /*******************************************/
    /*     代理方法获取 code    end  ---  */
    /***************************************************/
    
    
    /*******************************************/
    /*     方法: code --> token     start  ---  */
    /***************************************************/
    
    /*******************************************/
    /*     方法: code --> token     end  ---  */
    /***************************************************/

    
    /*******************************************/
    /*     方法:  token --> 用户信息    Start  ---  */
    /***************************************************/
    
    

    /*******************************************/
    /*     方法:  token --> 用户信息    end  ---  */
    /***************************************************/
    
    
    
    
}






